/**
 * Copyright (c) 2020-2022 宁波哥爱帮科技有限公司
 */
package cn.grab.fispservice.system.service.impl;

import cn.grab.fispservice.system.model.SysDict;
import cn.grab.fispservice.system.mapper.SysDictMapper;
import cn.grab.fispservice.system.service.SysDictService;
import com.fontana.db.mapper.BaseDaoMapper;
import com.fontana.db.service.impl.AbstractBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 *  服务实现类
 *
 * @author Auto
 * @since 2022-10-31
 */
@Service("sysDictService")
public class SysDictServiceImpl extends AbstractBaseService<SysDict, Long> implements SysDictService {

    @Autowired
    private SysDictMapper sysDictMapper;

    /**
     * 返回当前Service的主表Mapper对象。
     *
     * @return 主表Mapper对象。
     */
    @Override
    protected BaseDaoMapper<SysDict> mapper() {
        return sysDictMapper;
    }

    /**
     * 保存新增的SysDict对象。
     *
     * @param sysDict  新增SysDict对象。
     * @return 新增后的SysDict对象。
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public SysDict saveNew(SysDict sysDict){
        return sysDict;
    }

    /**
     * 更新SysDict对象。
     *
     * @param sysDict  更新的SysDict对象。
     * @return 更新成功返回true，否则false。
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean update(SysDict sysDict){
        return sysDictMapper.updateById(sysDict) == 1;
    }

    /**
     * 删除指定数据。
     *
     * @param id 主键Id。
     * @return 成功返回true，否则false。
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean remove(Long id){
        if (sysDictMapper.deleteById(id) == 0) {
            return false;
        }
        return true;
    }

    /**
     * 获取单表查询结果
     *
     * @param filter  过滤对象。
     * @param orderBy 排序参数。
     * @return 查询结果集。
     */
    @Override
    public List<SysDict> getSysDictList(SysDict filter, String orderBy){
        return sysDictMapper.getSysDictList(null, null, filter, orderBy);
    }

}

